Generally, users tend to load their devices with large amounts of data (e.g., music, pictures, movie, etc.). At some point, there may not be enough disk space remaining in a user device to allow additional data to be loaded. In other words, the user device may run out of disk space which leads to performance degradation.
Typically, when the user device runs out of disk space, the user is asked to free up some disk space. For instance, the user is presented with a dialog box indicating that the user device is out of disk space. A list of applications installed on the device is displayed and the user is asked to delete some of these applications (and associated data). Thus, the user is forced to make an uninformed decision regarding which applications to keep or delete in order to free up disk space which is not a particularly good user experience.
In another scenario, when the user device runs out of disk space, all data associated with an application could be deleted without consideration of the impact such an action would have on the user. For example, when the user's entire music library is deleted, the user would have a bad experience of having to download the songs again when he wants to listen to them. Consequently, there is a need for a system that is capable of intelligently freeing up disk space while preserving the best user experience possible.